Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Features/schemes lib #3

Merged
merged 6 commits into from
Apr 20, 2017
Merged

Features/schemes lib #3

merged 6 commits into from
Apr 20, 2017

Conversation

t-brown
Copy link
Collaborator

@t-brown t-brown commented Apr 20, 2017

Pulling in the feature branch where schemes are external projects and are built as shared libraries.

t-brown and others added 6 commits April 18, 2017 22:37
Extending the fields out to 7D.

Also the start of the great re-org and re-name.
- The XML validation suites are now called no-op.
- The test dummy program is now a test check program.

The removal of the need for the cmake "add_sources()" since we
are going to move the schemes to the toplevel and have them as
external projects.
A pretty big clean-up, hopefully getting ready for v0.0.1 release.

Since we re-jigged the source tree (moving the schemes out),
we don't need to use the cmake "add_sources()" function to push
source files up to their parent scope. I'll leave the macro/function
in for now.

Renaming the toplevel tests to be examples.

In moving the schemes up to the toplevel, I've renamed the check
one and made it into it's own library.

Going forward, each scheme should be it's own library. This means
the application has to know where the library is so as to open it
(i.e. LD_LIBRARY_PATH or RPATH).

Since scheme should be it's own library, we don't dlopen() ourself
and so there is no need to add the "-Wl,--export-dynamic" flag
to the linker on Linux.

A simple todo would be to make the library (dlopen() call),
use the absolute path if provided.

Adding the optional "lib" and "ver" attributes to the scheme element
in the XSD (and a few XML files).

Added a ccpp_ipd_init() and ccpp_ipd_fini() subroutines.
- The init will dlopen() the library and dlsym() to find the function.
- The fini closes the library.
This is make sure we are able to call the scheme cap function when needed.

Revamped the ccpp_ipd_run() subroutine to ONLY call the ONE scheme it
was asked to call instead of looping over ALL schemes. We are putting
the scheme  calling logic into the hands of the caller.

TODO:
Possible to use c_funptr's instead of generic c_ptr and therefore expose
the cap routines to Fortran...
Cleaned up the cmake files so the program builds on OS X.
Also changed the return variable from pathconf() to long, as
it's meant to be, to keep gcc happy.
The NO-OP scheme has been rolled into the check scheme.
Changed the SCM physics package/scheme to and external project.

Fixed errors in the doxygen documentation of CCPP routines.
Since the retrieval of a field the units is an optional
parameter. I've changed the adding a field to make the units
an optional parameter too.
@t-brown t-brown merged commit 6337b41 into develop Apr 20, 2017
@t-brown t-brown deleted the features/schemes_lib branch April 20, 2017 15:31
@climbfuji climbfuji mentioned this pull request May 9, 2018
gold2718 pushed a commit that referenced this pull request Apr 23, 2020
climbfuji referenced this pull request in climbfuji/ccpp-framework May 29, 2020
nusbaume pushed a commit to nusbaume/ccpp-framework that referenced this pull request Aug 25, 2023
Updates python doctest implementations to use pytest as the harness and now uses pytest to run python unit tests in GitHub action.
grantfirl pushed a commit that referenced this pull request May 21, 2024
Adding additional operating systems in testing
grantfirl pushed a commit that referenced this pull request May 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant